package main

import (
	"fmt"
	"sync"
	"time"
)

var wg sync.WaitGroup

// 生产者，往通道中发送数据
func Producer(ch chan int) {
	for i := 1; i <= 10; i++ {
		// 发送到通道
		ch <- i
		fmt.Println("生产者发送了：", i)
		time.Sleep(time.Second)
	}
	wg.Done()
	// 关闭通道
	close(ch)
}

// 消费者，从通道中获取数据
func Consumer(ch chan int) {
	// 遍历通道
	for value := range ch {
		fmt.Println("消费者从通道这获取了数据：", value)
	}
	wg.Done()
}
func main() {
	// 创建一个通道
	ch := make(chan int, 10)
	// 调用生产者函数
	wg.Add(1)
	go Producer(ch)
	// 调用消费者函数
	wg.Add(1)
	go Consumer(ch)

	wg.Wait()
	fmt.Println("程序运行结束")
}
